Trabalho Final do curso Relatório Reprodutiveis do Curso de Verão do IME da USP.
O presente trabalho é resultado do curso de Relatórios Reprodutiveis do IME da USP sob a orientação da professora Beatriz Milz. A intenção é aplicar o conhecimento adquirido no Curso para a problemática da sindemia de Covid-19 nos municípios paulistas.
O Conceito de Sindemia
O conceito de sindemia é tratado por Singer e Clair, 2003 como uma sinergia entre uma ou mais doenças. No exemplo citado, os autores analisaram como o entrelaçamento de uma ou mais doenças com contextos sociais e biopsicológicas produzem um novo paradigma à saúde pública de forma generalizada globalmente. Pelos dados oficiais, a Pandemia de Covid-19 no Brasil até a presente data levou à obito mais de 640 mil pessoas em todo o Brasil. Grande parte destes óbitos são de pessoas que apresentam comorbidades (uma ou mais doenças) que, associadas à infecção pelo virús Sars-cov-2, resultam em grupos de risco da doença. Assim, de forma exploratória e sem o devido tratamento estatistico, apresentarei como as comorbidades de diabetes e cardiopatia se relacionam nos óbitos de Covid-19 nos municípios do Estado de São Paulo. O banco de dados utilizado é de origem da Fundação Seade e disponível para reprodução e utilização.
Metodologia - Preparando a minha base de dados
Para uma boa prática de Programação, é necessário limpar a base de dados do R. Portanto, aqui listo os comandos que realizo para deixar o ambiente mais clean possível. Vale ressaltar que a base de dados utilizada é de aproximadamente 800mb. Portanto, quanto menos arquivos estiver na minha RAM, melhor.
##Preparando meu ambiente de trabalho
Limpando meu Ambiente de Trabalho
rm( list = ls( ) )
graphics.off()
gc(reset = TRUE)## used (Mb) gc trigger (Mb) max used (Mb)
## Ncells 419866 22.5 877761 46.9 419866 22.5
## Vcells 761789 5.9 8388608 64.0 761789 5.9
gc()## used (Mb) gc trigger (Mb) max used (Mb)
## Ncells 420317 22.5 877761 46.9 424699 22.7
## Vcells 762775 5.9 8388608 64.0 768372 5.9
A base de dados encontra-se em um link disponível para download. Porém, ela está disponível como um arquivo .zip, sendo necessária sua descompactação e também atribuição de seu caminho de destino.
Essa parte de Download e Descompactação poderia ser feita atráves de um serviço da Web. Como o arquivo é muito grande (aproximadamente 850mb), seria interessante ter uma máquina virtual para realizar o armazenamento e a descompactação do arquivo. Em breve, espero poder realizar tal atividade.
Lendo a base de dados
Portanto, resolvi atribuir um jpeg do meu Ambiente para demonstrar como as variáveis encontram-se. É interessante visualizar as variáveis de comorbidades para cada pessoa e o municipio a qual está relacionada
Manipulação dos dados
Nessa etapa, há uma premissa importante que preciso ressaltar: acredito que tudo o que ocorre no espaço geográfico relaciona-se de forma mais ou menos intensa. Tobler, p.237 em 1970 indicava que “todas as coisas estão relacionadas, mas coisas próximas estão mais relacionadas do que coisas distantes”. Assim, compreender a interação das comorbidades e grupos de risco/óbitos no estado de São Paulo pode evidenciar ou não um padrão espacial de comorbidades em evidências. Diante disso, utilizei o pacote Geobr para fazer download do shapefile dos municípios de São Paulo e que futuramente, as variáveis e informações aqui geradas, poderão ser utilizadas em outras análises para sustentar a minha hipótese.
dplyr::glimpse(mun_sp)## Rows: 645
## Columns: 5
## $ code_muni <dbl> 3500105, 3500204, 3500303, 3500402, 3500501, 3500550, 350~
## $ name_muni <chr> "Adamantina", "Adolfo", "Aguaí", "Águas Da Prata", "Águas~
## $ code_state <chr> "35", "35", "35", "35", "35", "35", "35", "35", "35", "35~
## $ abbrev_state <chr> "SP", "SP", "SP", "SP", "SP", "SP", "SP", "SP", "SP", "SP~
## $ geom <MULTIPOLYGON [°]> MULTIPOLYGON (((-51.09093 -..., MULTIPOLYGON~
sf::write_sf(mun_sp, dsn='mun_sp', driver='ESRI Shapefile')## Warning in abbreviate_shapefile_names(obj): Field names abbreviated for ESRI
## Shapefile driver
###Exportação do Shapefile
Alteração do nome de uma variável para realizar um Join
Aqui alterei o nome da variável que contém o código do município para realizar um Join futuramente com a base de dados. É melhor que as duas variáveis tenham o mesmo nome e que suas id’s sejam iguais.
mun_sp <- dplyr::rename(mun_sp, codigo_ibge = 'code_muni')
names (mun_sp)## [1] "codigo_ibge" "name_muni" "code_state" "abbrev_state" "geom"
Relação das Variáveis
O Intuito deste tópico é analisar, atráves do banco de dados, como as doenças de Diabetes e Cardiopatia se relacionam. Assim, a partir de uma breve limpeza dos dados, foi possível juntar as duas doenças e analisar a idade média dos óbitos para cada municipio de São Paulo. Portanto, da tabela de pouco mais de 4 milhões de registros individuais, consegui fazer o join das duas tabelas que necessito.
## Rows: 632
## Columns: 4
## $ X <int> 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15~
## $ codigo_ibge <int> 3500105, 3500204, 3500303, 3500402, 3500501, 3500~
## $ idade_media <dbl> 73.79630, 65.71429, 67.28302, 73.64706, 66.43333,~
## $ idade_media_diabetes <dbl> 65.58333, 69.71429, 65.94595, 71.90909, 68.50000,~
Gráficos e interações
Em um primeiro cenário de análise, é válido verificar a dispersão da idade média dessas comorbidades nos municípios paulistas. Essa atividade pode gerar insights sobre o agrupamento das idades médias e suas dispersões (“outliers”). Será que municípios que possuem idades médias mais avançadas possuem uma população mais idosa? Assim, elaborei um gráfico simples de dispersão para verificar como é essa distribuição.
library(ggplot2)
ggplot2::ggplot(dados, aes(x=idade_media,
y=idade_media_diabetes))+
geom_point()+
labs(title = "Relação da Média de Idade entre Óbitos de Cardiopatia e Diabetes nos municípios paulistas",
x="Média de Idade por cardiopatia",
y="Média de Idade por diabetes",
caption='Fonte: Fundação Seade')## Warning: Removed 8 rows containing missing values (geom_point).
Após isso, um gráfico de Boxplot pode ajudar a entender a interação entre as comorbidades, visualizar as médias e também verificar quais municípios encontram-se nos outliers. Assim:
ggplot2::ggplot(dados,
mapping = aes(x=idade_media,
y=idade_media_diabetes))+
geom_boxplot()+
labs(title = "Boxplot da média de idades dos óbitos nos municípios paulistas por comorbidades",
x="Média de Idade por cardiopatia",
y="Média de Idade por diabetes",
caption='Fonte: Fundação Seade')## Warning: Continuous x aesthetic -- did you forget aes(group=...)?
## Warning: Removed 8 rows containing non-finite values (stat_boxplot).
Representação Espacial
O Pacote Geobr
Como dito anteriormente, o pacote Geobr pode auxiliar muito na exportação/importação de arquivos geoespaciais quando necessário. Resolvi exportar o shapefile dos municípios do estado de São Paulo para o meu desktop e github e realizar um join com a tabela dos dados para representar as comorbidades de forma espacial.
Join das variáveis
Através do left_join realizado pelo Dplyr, é possível relacionar as variáveis do .csv com a id do .shp dos municipios. Assim, é simples elaborar um mapa temático com quebras naturais apresentando a idade média dos óbitos por cardiopatia nos municípios do Estado de São Paulo. Essa elaboração foi realizada no QGis.
Conclusão
Todo o aprendizado aqui adquirido foi relevante para apresentar de forma mais didática algumas das metodologias que utilizo em relação à análise de grandes bancos de dados e suas iterações com outros ambientes. Discorrer à respeito de sindemias e trazer os componentes espaciais em minhas análises é uma das atividades que gosto muito de realizar. Gostei muito da integração entre o Rstudio e GitHub e pretendo utiliza-lá sempre que possível. Existe bastante coisas para se consertar, porém o primeiro passo foi dado.
Créditos
Agradeço à Fundação Seade pela disponibilização dos dados e também à professora e monitores e monitoras do Curso. Todo o conteúdo aqui disponibilizado pode ser replicado, desde que citada a fonte.